package com;

import com.itheima.pojo.User;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;

import java.io.IOException;
import java.io.Reader;

public class UserTest {
    public static void main(String[] args) {
        // 读取文件名
        String resources = "mybatis-config.xml";
        // 创建流
        Reader reader = null;
        try {
            // 读取 mybatis-config.xml 文件内容到 reader 对象中
            reader = Resources.getResourceAsReader(resources);
        } catch (IOException e) {
            e.printStackTrace();
            return; // 如果文件读取失败，直接退出程序
        }

        // 初始化 MyBatis 数据库，创建 SqlSessionFactory 类的实例
        SqlSessionFactory sqlMapper = new SqlSessionFactoryBuilder().build(reader);
        // 创建 SqlSession 实例
        try (SqlSession session = sqlMapper.openSession()) {
            // 传入参数查询，返回结果
            User user = session.selectOne("findById", 1);

            // 检查查询结果，防止 NullPointerException
            if (user != null) {
                // 输出结果
                System.out.println(user.getUname());
            } else {
                System.out.println("User not found with id 1");
            }
        } catch (Exception e) {
            // 捕获可能的异常并打印堆栈信息
            e.printStackTrace();
        }
    }
}
